#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>

/************************************************************************/
/*                                                                      */
/************************************************************************/
/****************************/
/*     rand_50_60()函数     */
/*    返回50～60的随机函数  */
/****************************/
int rand_50_60(void)
{
    return rand()%11 + 50;
}

/****************************/
/*     rand_0_100()函数         */
/*返回0～100的随机函数      */
/****************************/
int rand_0_100(void)
{
    return rand()%101;
}

/****************************/
/*     rand_1_10()函数     */
/*    返回1～10的随机函数  */
/****************************/
int rand_1_10(void)
{
    return rand()%10 + 1;
}

/************************************************************************/
/*                                                                      */
/************************************************************************/
int get_ad(void)
{
    int rnd;
    
    rnd = rand_1_10();
    
    if(rnd == 10)
    {
        rnd = rand_0_100();
    }
    else
    {
        rnd = rand_50_60();
    }
    
    return rnd;
}

/************************************************************************/
/*                                                                      */
/************************************************************************/
#define THRESHOLD  10

int value = 55;

int filter(void)
{  
    int new_value;
    
    new_value = get_ad();
    if ((new_value - value > THRESHOLD) || (value - new_value > THRESHOLD))
          return value;

    value = new_value;
    
    return value;
}

/************************************************************************/
/*                                                                      */
/************************************************************************/

int main(int argc, char* argv[])
{
    srand((unsigned)time(NULL));     // 设置随机数种子
    
    while(1)
    {
        printf("val %d \r\n", filter());
        sleep(1);
    }
    return 0;
}